メイン コンテンツをスキップする 補完的コンテンツへスキップ

concat 関数の例

CONCAT() 関数は、CONCATENATE スクリプトのキーワードと、混同してはいけません。

最もシンプルな形では、値/ワード/選択をひとつの文字列に結合させるのに、Concat() が使用されます。しかし、異なる問題を解決するのに役立つ多数の方法で、活用することが可能です。すべての例は、下記のテーブルに基づいています:

Example string table data
文字列テーブル データの例
Table MyColumn Date Value
Data JKL 01/01/2012 11
Data1 WVX 01/02/2012 13
Data GHI 01/03/2012 13
Data ABC 01/04/2012 15
Data1 STU 01/05/2012 18
Data1 PQR 01/06/2012 10
Data1 MNO 01/07/2012 25
Data DEF 01/08/2012 11

シンプルな文字列連結

これまでに説明した通り、concat 関数は、リストされた値を連結することができます。これら値はハード・コード化されたり、選択/データによって駆動されます。

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

このシンプルなconcat ステートメントで、列MyColumn の絞込値をすべて連結します。DISTINCT キーワードを追加した方がよい場合があります。これにより、各値は、文字列で 1 回だけ表示されるようになります。

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

シンプルなconcatを使用した場合、選択した列ごとに、文字列の値を順番に並べる関数に、sort weightを追加する選択肢が増えます。下記の例では、値をソートするために、データ列が追加されています。

=CONCAT(MyColumn, ',', Date)

結果:JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

数式/Set ステートメント内の Concat()

Set 分析の数式に複数の動的な値を渡す

Set ステートメントに動的な値の選択を渡したい場合があります。そうするためには、CONCAT() 関数が 'JKL' や 'VWX' などを返すように、文字列にシングル クォートを追加する必要があります。しかし、シングル クォートそのままで、使用することはできません。なぜなら、Set 数式が評価されているときではなく、Concat が評価されている時に、シングル クォートが解釈されるからです。よって代わりに、下記のようにChr() 関数を使用します:

=CONCAT(Chr(39)&MyColumn&Chr(39),',')

そして、このconcat ステートメントを数式内に渡すことができます:

=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)

このテクニックはほとんどの場合、データ アイランドが存在するときに使用されます。データ アイランドのテーブルがデータ モデルに連結していないので、データ モデルに何の影響を及ぼさない数式に、値が渡されます。

スクリプト内の Concat()

また、Concat は、他の集計関数と同じように、複数の行を単一の列の値にコンバートするために、スクリプト内で使用されます。

以前、使用されていたソース データを把握している場合、スクリプト側CONCAT の結果は、以下の通りです:

ConcatExample:
Load Table,
Concat(MyColumn,',') as CombinedData
Resident Temp
Group By Table;

以下は、このスクリプト関数の結果です:

テーブル形式の出力例
Table CombinedData
Data ABC,DEF,GHI,JKL
Data1 MNO,PQR,STU,WVX

Rank() を使用して、Concat() に影響を及ぼす

concat() と併せて、その他の関数を活用し始めると、うまく結果を達成できるようになります。この例では、(値に基づき)上位3名のパフォーマーを把握し、その結果を連結させるために、Rank() が使用されています。

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')

結果:ABC,MNO,STU

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。

分析の近代化プログラムに参加する

Remove banner from view

分析最新化プログラムにより、重要な QlikView app を危険にさらすことなく最新化しましょう。 ここをクリック して詳細を表示するか、次にお問い合わせください。 ampquestions@qlik.com